Подготовка

In [36]:
import plotly.offline as pyo
pyo.init_notebook_mode()
In [37]:
import pandas as pd
import matplotlib
import plotly.express as px
from sqlalchemy import create_engine
import ipywidgets as widgets
from ipywidgets import interact, interact_manual
import datetime
from datetime import timedelta
from plotly.subplots import make_subplots
In [38]:
HOST = '37.139.42.145'
DBNAME = 'game-analytics'
USER = 'analytics'
PASSWORD = 'BRtTaqYiJyr29WXN'
TABLE_SCHEMA = 'data_viz_1068.project_dataset'
In [39]:
engine = create_engine(f'postgresql://{USER}:{PASSWORD}@{HOST}/{DBNAME}')
In [40]:
project_dataset = pd.read_sql(f"""
    SELECT *
    FROM {TABLE_SCHEMA} 
""", con=engine)
project_dataset
Out[40]:
event_time event_date event_name revenue_usd region country device_type platform cohort_date user_id user_type content_id currency revenue
0 2020-12-09 06:26:46 2020-12-09 LaunchApp 0.0 EU RU samsung-SM-G975F android 2020-10-27 174032 organic None None 0.0
1 2020-12-09 06:28:30 2020-12-09 LaunchApp 0.0 EU RU iPhone 7 Plus ios 2020-11-03 187813 organic None None 0.0
2 2020-12-09 06:28:36 2020-12-09 LaunchApp 0.0 EU RU samsung-SM-A515F android 2020-12-07 211005 organic None None 0.0
3 2020-12-09 06:28:36 2020-12-09 LaunchApp 0.0 EU RU Prestigio-PSP7551DUO android 2020-11-13 198878 organic None None 0.0
4 2020-12-09 06:28:38 2020-12-09 LaunchApp 0.0 EU RU xiaomi-Redmi Note 6 Pro android 2020-10-10 142398 non_organic None None 0.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1176993 2020-12-09 06:24:04 2020-12-09 LaunchApp 0.0 EU RU HONOR-LLD-L31 android 2020-11-01 183432 organic None None 0.0
1176994 2020-12-09 06:25:05 2020-12-09 LaunchApp 0.0 EU RU HONOR-HRY-LX1T android 2020-11-14 201972 organic None None 0.0
1176995 2020-12-09 06:25:08 2020-12-09 LaunchApp 0.0 EU RU iPhone SE ios 2020-11-05 190096 non_organic None None 0.0
1176996 2020-12-09 06:25:11 2020-12-09 LaunchApp 0.0 EU RU samsung-SM-J600F android 2020-10-31 182397 organic None None 0.0
1176997 2020-12-09 06:25:21 2020-12-09 LaunchApp 0.0 EU UA samsung-SM-A105FN android 2020-12-04 209882 organic None None 0.0

1176998 rows × 14 columns

In [41]:
project_dataset.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1176998 entries, 0 to 1176997
Data columns (total 14 columns):
 #   Column       Non-Null Count    Dtype         
---  ------       --------------    -----         
 0   event_time   1176998 non-null  datetime64[ns]
 1   event_date   1176998 non-null  object        
 2   event_name   1176998 non-null  object        
 3   revenue_usd  1176998 non-null  float64       
 4   region       1176998 non-null  object        
 5   country      1176977 non-null  object        
 6   device_type  1176998 non-null  object        
 7   platform     1176998 non-null  object        
 8   cohort_date  1176998 non-null  object        
 9   user_id      1176998 non-null  int64         
 10  user_type    1176998 non-null  object        
 11  content_id   13333 non-null    object        
 12  currency     13285 non-null    object        
 13  revenue      1176998 non-null  float64       
dtypes: datetime64[ns](1), float64(2), int64(1), object(10)
memory usage: 125.7+ MB
In [42]:
project_dataset['event_date'] = pd.to_datetime(project_dataset['event_date'])
project_dataset['cohort_date'] = pd.to_datetime(project_dataset['cohort_date'])

project_dataset.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1176998 entries, 0 to 1176997
Data columns (total 14 columns):
 #   Column       Non-Null Count    Dtype         
---  ------       --------------    -----         
 0   event_time   1176998 non-null  datetime64[ns]
 1   event_date   1176998 non-null  datetime64[ns]
 2   event_name   1176998 non-null  object        
 3   revenue_usd  1176998 non-null  float64       
 4   region       1176998 non-null  object        
 5   country      1176977 non-null  object        
 6   device_type  1176998 non-null  object        
 7   platform     1176998 non-null  object        
 8   cohort_date  1176998 non-null  datetime64[ns]
 9   user_id      1176998 non-null  int64         
 10  user_type    1176998 non-null  object        
 11  content_id   13333 non-null    object        
 12  currency     13285 non-null    object        
 13  revenue      1176998 non-null  float64       
dtypes: datetime64[ns](3), float64(2), int64(1), object(8)
memory usage: 125.7+ MB
In [43]:
project_dataset['event_name'].unique()
Out[43]:
array(['LaunchApp', 'achieve_level_8', 'achieve_level_4',
       'achieve_level_12', 'achieve_level_10', 'af_purchase',
       'achieve_level_14', 'achieve_level_5', 'FirstLaunchApp',
       'achieve_level_9', 'achieve_level_6', 'achieve_level_15',
       'achieve_level_7', 'achieve_level_13', 'achieve_level_16',
       'achieve_level_17', 'achieve_level_19', 'achieve_level_11',
       'achieve_level_18'], dtype=object)

1. Анализ динамики количества ежедневных инсталлов.

Подготовка

In [44]:
#preinstalls = project_dataset.query('event_date==cohort_date')
preinstalls = project_dataset[project_dataset['event_date'] == project_dataset['cohort_date']]

По типу пользователя.

In [45]:
installs_by_user_type = (preinstalls
                         .groupby(by=['cohort_date', 'user_type'], as_index=False)
                         .agg(total_installs=('user_id', 'nunique')))
fig = px.line(installs_by_user_type,x='cohort_date', y='total_installs', color='user_type')
fig.show()

Неорганические.
С конца Октября и по вторую треть Декабря видны инсталлы неорганических пользователей с пиком в 11 Ноября.
Это похоже на начало рекламной компании (27 Октября).
К 25 Декабря деньги у рекламной компании практически закончились. 3 Декабря докинули денег на рекламу.
7 Декабря решили забить полностью на рекламу (/платное продвижение).
После 7 декабря неораганические пользователи практически не приходят.
И 27 Мая (ровно через 7 месяцев) платные инсталлы прекращяются полностью.

Органика.
28 Октября - 10 Ноября органические пользователи регулярно приходят - примерно 140 в день.
11 Ноября происходит резкий скачок органических инсталов с пиком 15 Ноября.
В это время так же был пик неорганических пользователей, возможно они рассказали своим знакомым об игре и это привело к увеличению органики.
Может быть в этот день была еще либа какая акция направленная на привлечение новых пользователей.
Далее число органических инсталов медленно но верно падает. (этому так же способствует прекращение рекламной компании). 23 Марта происходит какое то событие которое приводит к максимальному всплеску инсталов. Который впрочем так же быстро спадает. (может это был заказ рекламы у какого нибудь известного стримера (трафик при этом получился органическим так как игру просто скачали из магазина). А может какой нибудь 1 дневный featuring :).
Далее инсталлы медленно уменьшаются.

По региону, стране.

In [46]:
installs_by_region = (preinstalls
                         .groupby(by=['cohort_date', 'region'], as_index=False)
                         .agg(total_installs=('user_id', 'nunique')))
fig = px.line(installs_by_region,x='cohort_date', y='total_installs', color='region')
fig.show()
In [47]:
installs_by_region = (preinstalls
                         .groupby(by=['cohort_date', 'country'], as_index=False)
                         .agg(total_installs=('user_id', 'nunique')))
fig = px.line(installs_by_region,x='cohort_date', y='total_installs', color='country').show()

Оказывается что В начале инсталлы были в основном из России, США и Украины.
Скорее всего игра Русская :).
То что инсталлы идут из разных стран сразу, говорит о том что игра практически сразу релизнулась на весь мир.
Всплеск 23 Марта затронул только СНГ сегмент. Скорее всего мероприятие преведшее к этому произошло для Русской аудитории. 30 Января заметен небольшой всплеск инсталов в Корее.

По платформе.

In [48]:
installs_by_region = (preinstalls
                         .groupby(by=['cohort_date', 'platform'], as_index=False)
                         .agg(total_installs=('user_id', 'nunique')))
fig = px.line(installs_by_region,x='cohort_date', y='total_installs', color='platform')
fig.show()

Игра сначало выпустилась только на IOS.
Оказывается пик 11 Ноября связан с релизом Андроид версии. Что привело к большому количеству инставлов именно на Андроид и именно в России.
Мощный Всплесл 23 Марта произошел основном для андроид инсталлов. Мероприятие в этот день было связано с платформой андроид и с пользователями из СНГ. Возможно это был какой то Featuring в андроид магазине для СНГ аудитории.
Всплеск в Кореи 30 января тоже характерен только для андроид.

2. Анализ удержания по региону.

Анализ инсталов по региону проделан в первом пункте. Ниже продублирую график.

In [49]:
installs_by_region = (preinstalls
                         .groupby(by=['cohort_date', 'region'], as_index=False)
                         .agg(total_installs=('user_id', 'nunique')))
fig = px.line(installs_by_region,x='cohort_date', y='total_installs', color='region').show()

Оцениим проценты польователей зашедших в игру на следующий день.

Инсталлы

In [50]:
installs = installs_by_region
installs.head()
Out[50]:
cohort_date region total_installs
0 2020-10-22 AS 9
1 2020-10-22 EU 2
2 2020-10-23 AS 1
3 2020-10-23 EU 3
4 2020-10-25 NA 1

Пользователи зашедшие на второй день

In [51]:
tomorrows = project_dataset[project_dataset['event_date']==project_dataset['cohort_date'] + timedelta(days=1)]
tomorrows = tomorrows.groupby(['cohort_date', 'region'], as_index=False).agg(tomorrows=('user_id', 'nunique'))

tomorrows.head()
Out[51]:
cohort_date region tomorrows
0 2020-10-26 NA 14
1 2020-10-27 AS 1
2 2020-10-27 EU 69
3 2020-10-27 NA 77
4 2020-10-28 AS 1

Таблица удержания второго дня

In [52]:
retention = installs.merge(tomorrows, how='left', on=('cohort_date', 'region'))
retention = retention.fillna(0)
retention['day_2_retention'] = retention['tomorrows'] / retention['total_installs'] * 100
retention['day_2_retention'] = retention['day_2_retention'].clip(0, 100)

retention
Out[52]:
cohort_date region total_installs tomorrows day_2_retention
0 2020-10-22 AS 9 0.0 0.000000
1 2020-10-22 EU 2 0.0 0.000000
2 2020-10-23 AS 1 0.0 0.000000
3 2020-10-23 EU 3 0.0 0.000000
4 2020-10-25 NA 1 0.0 0.000000
... ... ... ... ... ...
760 2021-05-30 EU 68 13.0 19.117647
761 2021-05-30 NA 17 6.0 35.294118
762 2021-05-31 AS 2 0.0 0.000000
763 2021-05-31 EU 20 0.0 0.000000
764 2021-05-31 NA 4 0.0 0.000000

765 rows × 5 columns

In [53]:
fig = px.line(retention, x='cohort_date', y='day_2_retention', color='region').show()

Уберем регионы в которых данные нестабильны

In [54]:
retention = retention[retention['region'].isin(['AS', 'EU', 'NA'])]
fig = px.line(retention, x='cohort_date', y='day_2_retention', color='region').show()

Трудно оценить удержание по таким волатильномыи графикам.
Можно сказать что удержание в AS очень волатильно и кажется что оно чуть выше чем у всех остальных.
В EU удержание кажется самым стабильным.

Попробуем уменьшить волатильность построив скользящие средние

In [55]:
pd.options.mode.chained_assignment = None  # default='warn'
def ShowRollingMeanDay2Retention(WINDOW):
    as_df = retention[retention['region'] == 'AS']
    as_df['rolling'] = as_df['day_2_retention'].rolling(WINDOW).mean()

    eu_df = retention[retention['region'] == 'EU']
    eu_df['rolling'] = eu_df['day_2_retention'].rolling(WINDOW).mean()

    na_df = retention[retention['region'] == 'NA']
    na_df['rolling'] = na_df['day_2_retention'].rolling(WINDOW).mean()

    rolling = as_df.append(eu_df).append(na_df)

    fig = px.line(rolling, x='cohort_date', y='rolling', color='region').show()
In [56]:
interact(ShowRollingMeanDay2Retention, WINDOW=(1,20,1))
Out[56]:
<function __main__.ShowRollingMeanDay2Retention>

Тут уже видно что AS удержание самое высокое. И самое изменчивае. (видно цикличное изменение - 3 цикла по 2-2.5 месяца)
Удержание в NA чуть больше чем у EU.
В EU удержание самое стабильное но и самое маленькое.

In [57]:
counts = preinstalls.copy()
counts.drop_duplicates(subset=['user_id'])
counts = counts.groupby(['region'], as_index=False).agg(installs=('user_id', 'nunique'))
counts = counts.sort_values(by=['installs'], ascending=False)
counts
Out[57]:
region installs
3 EU 24070
4 NA 10687
1 AS 2672
5 SA 67
0 AF 29
2 AU 19

У EU больше всего данных по этому его график самый стабильный.
У AS в примерно 10 раз меньше данных вот почему его график самый волатильный.

3. Анализ поведения в первые 24 часа

Подготовка

Выделим события которые находятся в 24 часовом промежутке после инсталла для каждого пользователя.

In [58]:
install_times = project_dataset[project_dataset['event_name']=='FirstLaunchApp']
install_times = install_times.drop_duplicates(subset=('user_id'))
install_times = install_times[['user_id', 'event_time']]
install_times = install_times.rename(columns={'event_time' : 'install_time'})
install_times.head(2)
Out[58]:
user_id install_time
158 127228 2020-12-09 07:14:31
242 211524 2020-12-09 07:41:17
In [59]:
#table_24 = project_dataset[project_dataset['event_name']!='FirstLaunchApp']
table_24 = project_dataset.copy()
table_24 = table_24.merge(install_times, on='user_id')
table_24 = table_24[table_24['event_time']<=table_24['install_time'] + timedelta(hours=24)]
table_24 = table_24[table_24['event_time']>=table_24['install_time']]
table_24['living_hour'] = (table_24['event_time'] - table_24['install_time']).dt.seconds / 3600
table_24.head(2)
Out[59]:
event_time event_date event_name revenue_usd region country device_type platform cohort_date user_id user_type content_id currency revenue install_time living_hour
37 2021-04-18 09:27:32 2021-04-18 FirstLaunchApp 0.0 EU RU iPhone 7 Plus ios 2021-04-18 187813 organic None None 0.0 2021-04-18 09:27:32 0.0
193 2020-12-09 21:35:30 2020-12-09 FirstLaunchApp 0.0 EU RU samsung-SM-A515F android 2020-12-09 211005 organic None None 0.0 2020-12-09 21:35:30 0.0

Топ событий

In [60]:
table_24['event_name'].value_counts(normalize=True).reset_index()
Out[60]:
index event_name
0 LaunchApp 0.468133
1 FirstLaunchApp 0.293940
2 achieve_level_4 0.094564
3 achieve_level_5 0.064405
4 achieve_level_6 0.034024
5 achieve_level_7 0.017601
6 af_purchase 0.012801
7 achieve_level_8 0.007972
8 achieve_level_9 0.003305
9 achieve_level_10 0.001362
10 achieve_level_11 0.000640
11 achieve_level_12 0.000353
12 achieve_level_13 0.000236
13 achieve_level_14 0.000213
14 achieve_level_15 0.000162
15 achieve_level_17 0.000103
16 achieve_level_16 0.000081
17 achieve_level_19 0.000066
18 achieve_level_18 0.000037

Самые частые события это конешно же LaunchApp и FirstLaunchApp.
Далее идут AchieveLevel_4-7.
Следующее по частоте - событие покупки.
Получается что чаще всего покупки делают до 8 уровня. (или можно сказать - покупают чаще чем доходят до 8 уровня)

Топ событий по дням

In [61]:
contents = table_24.groupby(['cohort_date', 'event_name'], as_index=False)['event_time'].count()
contents = contents[contents['event_name']!='LaunchApp']
contents = contents[contents['event_name']!='FirstLaunchApp']
contents = contents.rename(columns={'event_time' : 'occurrences'})
contents = contents.sort_values(by=['occurrences'], ascending=False)
fig = px.bar(contents, x='cohort_date', y='occurrences', color='event_name').show()

Видно 4 пик 4 Декабря. Ранее не придал этому значения. Видимо тоже какое то событие было (в это время был мини всплеск покупных пользователей - который я описал как - "докинули денег на рекламу")
В остальном же не видно каких то особых сдвигов в частоте тех или иных событий.

Частота событий по другим кагортам

In [62]:
contents = table_24.groupby(['region', 'event_name'], as_index=False)['event_time'].count()
contents = contents[contents['event_name']!='LaunchApp']
contents = contents[contents['event_name']!='FirstLaunchApp']
contents = contents.rename(columns={'event_time' : 'occurrences'})
contents = contents.sort_values(by=['occurrences'], ascending=False)
fig = px.bar(contents, x='event_name', y='occurrences', color='region').show()

Событие af_purchase происходит чаще примерно в 2 раза чем во всех других регионах. (если учесть что людей от туда в 2 раза меньщше то в процентном соотнощении получается что это событие происходит в NA аж в 4 раза чаще)

In [63]:
contents = table_24.groupby(['user_type', 'event_name'], as_index=False)['event_time'].count()
contents = contents[contents['event_name']!='LaunchApp']
contents = contents[contents['event_name']!='FirstLaunchApp']
contents = contents.rename(columns={'event_time' : 'occurrences'})
contents = contents.sort_values(by=['occurrences'], ascending=False)
fig = px.bar(contents, x='event_name', y='occurrences', color='user_type').show()
In [64]:
contents = table_24.groupby(['platform', 'event_name'], as_index=False)['event_time'].count()
contents = contents[contents['event_name']!='LaunchApp']
contents = contents[contents['event_name']!='FirstLaunchApp']
contents = contents.rename(columns={'event_time' : 'occurrences'})
contents = contents.sort_values(by=['occurrences'], ascending=False)
fig = px.bar(contents, x='event_name', y='occurrences', color='platform').show()

На IOS события af_purchase происходит чаще.

Топ покупок

In [65]:
table_24['content_id'].value_counts(normalize=True).reset_index()
Out[65]:
index content_id
0 ta_low_offer_3 0.243243
1 ta_starter 0.140886
2 ta_challenge_pass 0.115009
3 ta_low_offer_2 0.109833
4 ta_div_1 0.081656
... ... ...
77 cl_balance01_t13 0.000575
78 cl_card01_t6 0.000575
79 cl_card01_t23 0.000575
80 ta_div_7 0.000575
81 cl_card02_t7 0.000575

82 rows × 2 columns

Самые продаваемые:
ta_low_offer_3 - 25%!
ta_starter - 14%.
ta_challenge_pass 11%.

Топ покупок по дням

In [66]:
contents = table_24.groupby(['cohort_date', 'content_id'], as_index=False)['event_time'].count()
contents = contents.rename(columns={'event_time' : 'occurrences'})
contents = contents.sort_values(by=['occurrences'], ascending=False)
fig = px.bar(contents, x='cohort_date', y='occurrences', color='content_id').show()

24 Марта продалось много ta_low_offer_2.
В другие дни оно так не выделяется.
Возможно оно было привязано к какой то акции.

Покупки по другим когортам

In [67]:
contents = table_24.groupby(['region', 'content_id'], as_index=False)['event_time'].count()
contents = contents.rename(columns={'event_time' : 'occurrences'})
contents = contents.sort_values(by=['occurrences'], ascending=False)
fig = px.bar(contents, x='content_id', y='occurrences', color='region').show()

ta_starter, ta_challenge_pass, ta_mid_offer_1 - лучше всего продаются в NA.

In [68]:
contents = table_24.groupby(['platform', 'content_id'], as_index=False)['event_time'].count()
contents = contents.rename(columns={'event_time' : 'occurrences'})
contents = contents.sort_values(by=['occurrences'], ascending=False)
fig = px.bar(contents, x='content_id', y='occurrences', color='platform').show()

ta_starter, ta_challenge_pass, ta_mid_offer_1 - лучше всего продаются на IOS.

In [69]:
contents = table_24.groupby(['user_type', 'content_id'], as_index=False)['event_time'].count()
contents = contents.rename(columns={'event_time' : 'occurrences'})
contents = contents.sort_values(by=['occurrences'], ascending=False)
fig = px.bar(contents, x='content_id', y='occurrences', color='user_type').show()

Примечание.

Можно было пробывать сравнивать в когортах в процентном соотнащении на единицу пользователя. А то получатеся у кого больше инсталлов у того и события чаще происходят. Можно чего нибудь не заметить.

", "application/vnd.plotly.v1+json": {"layout": {"margin": {"t": 60}, "xaxis": {"title": {"text": "cohort_date"}, "domain": [0, 1], "anchor": "y"}, "yaxis": {"title": {"text": "rolling"}, "domain": [0, 1], "anchor": "x"}, "template": {"layout": {"autotypenumbers": "strict", "colorway": ["#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52"], "annotationdefaults": {"arrowwidth": 1, "arrowhead": 0, "arrowcolor": "#2a3f5f"}, "coloraxis": {"colorbar": {"ticks": "", "outlinewidth": 0}}, "paper_bgcolor": "white", "hoverlabel": {"align": "left"}, "font": {"color": "#2a3f5f"}, "yaxis": {"gridcolor": "white", "zerolinewidth": 2, "linecolor": "white", "title": {"standoff": 15}, "automargin": true, "zerolinecolor": "white", "ticks": ""}, "plot_bgcolor": "#E5ECF6", "colorscale": {"sequentialminus": [[0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1, "#f0f921"]], "diverging": [[0, "#8e0152"], [0.1, "#c51b7d"], [0.2, "#de77ae"], [0.3, "#f1b6da"], [0.4, "#fde0ef"], [0.5, "#f7f7f7"], [0.6, "#e6f5d0"], [0.7, "#b8e186"], [0.8, "#7fbc41"], [0.9, "#4d9221"], [1, "#276419"]], "sequential": [[0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1, "#f0f921"]]}, "hovermode": "closest", "title": {"x": 0.05}, "geo": {"subunitcolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "bgcolor": "white", "showland": true, "lakecolor": "white"}, "mapbox": {"style": "light"}, "polar": {"radialaxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}, "bgcolor": "#E5ECF6", "angularaxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}}, "ternary": {"bgcolor": "#E5ECF6", "aaxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}, "baxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}, "caxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}}, "scene": {"xaxis": {"showbackground": true, "gridcolor": "white", "backgroundcolor": "#E5ECF6", "linecolor": "white", "ticks": "", "zerolinecolor": "white", "gridwidth": 2}, "yaxis": {"showbackground": true, "gridcolor": "white", "backgroundcolor": "#E5ECF6", "linecolor": "white", "ticks": "", "zerolinecolor": "white", "gridwidth": 2}, "zaxis": {"showbackground": true, "gridcolor": "white", "backgroundcolor": "#E5ECF6", "linecolor": "white", "ticks": "", "zerolinecolor": "white", "gridwidth": 2}}, "xaxis": {"gridcolor": "white", "zerolinewidth": 2, "linecolor": "white", "title": {"standoff": 15}, "automargin": true, "zerolinecolor": "white", "ticks": ""}, "shapedefaults": {"line": {"color": "#2a3f5f"}}}, "data": {"scattergl": [{"type": "scattergl", "marker": {"colorbar": {"ticks": "", "outlinewidth": 0}}}], "histogram2d": [{"colorbar": {"ticks": "", "outlinewidth": 0}, "colorscale": [[0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1, "#f0f921"]], "type": "histogram2d"}], "mesh3d": [{"colorbar": {"ticks": "", "outlinewidth": 0}, "type": "mesh3d"}], "scattergeo": [{"type": "scattergeo", "marker": {"colorbar": {"ticks": "", "outlinewidth": 0}}}], "bar": [{"type": "bar", "error_x": {"color": "#2a3f5f"}, "error_y": {"color": "#2a3f5f"}, "marker": {"pattern": {"solidity": 0.2, "fillmode": "overlay", "size": 10}, "line": {"color": "#E5ECF6", "width": 0.5}}}], "scatter": [{"type": "scatter", "marker": {"colorbar": {"ticks": "", "outlinewidth": 0}}}], "choropleth": [{"colorbar": {"ticks": "", "outlinewidth": 0}, "type": "choropleth"}], "histogram": [{"type": "histogram", "marker": {"pattern": {"solidity": 0.2, "fillmode": "overlay", "size": 10}}}], "carpet": [{"type": "carpet", "aaxis": {"startlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "endlinecolor": "#2a3f5f"}, "baxis": {"startlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "endlinecolor": "#2a3f5f"}}], "histogram2dcontour": [{"colorbar": {"ticks": "", "outlinewidth": 0}, "colorscale": [[0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1, "#f0f921"]], "type": "histogram2dcontour"}], "surface": [{"colorbar": {"ticks": "", "outlinewidth": 0}, "colorscale": [[0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1, "#f0f921"]], "type": "surface"}], "parcoords": [{"type": "parcoords", "line": {"colorbar": {"ticks": "", "outlinewidth": 0}}}], "scatterternary": [{"type": "scatterternary", "marker": {"colorbar": {"ticks": "", "outlinewidth": 0}}}], "contour": [{"colorbar": {"ticks": "", "outlinewidth": 0}, "colorscale": [[0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1, "#f0f921"]], "type": "contour"}], "scattercarpet": [{"type": "scattercarpet", "marker": {"colorbar": {"ticks": "", "outlinewidth": 0}}}], "heatmap": [{"colorbar": {"ticks": "", "outlinewidth": 0}, "colorscale": [[0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1, "#f0f921"]], "type": "heatmap"}], "heatmapgl": [{"colorbar": {"ticks": "", "outlinewidth": 0}, "colorscale": [[0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1, "#f0f921"]], "type": "heatmapgl"}], "scattermapbox": [{"type": "scattermapbox", "marker": {"colorbar": {"ticks": "", "outlinewidth": 0}}}], "contourcarpet": [{"colorbar": {"ticks": "", "outlinewidth": 0}, "type": "contourcarpet"}], "scatterpolar": [{"type": "scatterpolar", "marker": {"colorbar": {"ticks": "", "outlinewidth": 0}}}], "scatter3d": [{"type": "scatter3d", "marker": {"colorbar": {"ticks": "", "outlinewidth": 0}}, "line": {"colorbar": {"ticks": "", "outlinewidth": 0}}}], "scatterpolargl": [{"type": "scatterpolargl", "marker": {"colorbar": {"ticks": "", "outlinewidth": 0}}}], "pie": [{"type": "pie", "automargin": true}], "table": [{"header": {"fill": {"color": "#C8D4E3"}, "line": {"color": "white"}}, "type": "table", "cells": {"fill": {"color": "#EBF0F8"}, "line": {"color": "white"}}}], "barpolar": [{"type": "barpolar", "marker": {"pattern": {"solidity": 0.2, "fillmode": "overlay", "size": 10}, "line": {"color": "#E5ECF6", "width": 0.5}}}]}}, "legend": {"title": {"text": "region"}, "tracegroupgap": 0}}, "data": [{"legendgroup": "AS", "y": [null, null, null, null, null, null, null, null, null, 30.341269841269842, 32.84126984126984, 33.95238095238095, 32.95238095238095, 27.238095238095234, 26.285714285714285, 31.285714285714285, 29.06349206349206, 30.681139122315592, 30.26447245564892, 28.676237161531276, 30.898459383753497, 35.78734827264239, 40.439522185685874, 41.53842328458696, 43.68896091899557, 43.86137471209902, 47.0431928939172, 48.71501951930419, 49.04159609588078, 52.248879009046036, 52.193323453490486, 51.98279713770101, 49.7788990867265, 48.97761703544445, 48.27635476335469, 50.06046270938167, 51.10941375833272, 50.53733137847002, 51.69408813522678, 48.07504051617916, 46.88663471907771, 46.481776419482564, 47.516259178103255, 46.74244965429373, 46.19061018941078, 43.14713192854122, 43.91636269777199, 41.742449654293736, 45.12022743207151, 44.87022743207151, 47.64196656250629, 48.01492693546667, 52.22782048869006, 53.60348186435143, 53.21886647973605, 52.24699947206342, 50.818428043491984, 51.524949782622414, 48.12217200484464, 47.449095081767716, 45.36576174843439, 43.454339837012476, 39.20313210754388, 39.01794692235869, 40.88607879049056, 37.94490231990232, 37.2306166056166, 35.702838827838825, 36.952838827838825, 40.12591575091575, 39.95924908424908, 41.567640692640694, 42.123196248196244, 38.789862914862915, 35.0755772005772, 40.46019258519259, 41.603049728049726, 44.380827505827504, 41.61297036297036, 41.07725607725608, 41.07725607725608, 38.956043956043956, 37.081043956043956, 45.414377289377285, 48.96993284493284, 49.46767040149393, 52.30977566465183, 51.476442331318495, 52.255663110539274, 54.54137739625355, 55.278219501516716, 58.19488616818338, 58.40321950151671, 51.13049222878944, 48.90827000656722, 43.740202779676466, 46.89809751651857, 49.51109186680105, 50.67472823043742, 48.61222823043742, 47.87538612517426, 48.62538612517426, 51.29205279184092, 50.964780064568195, 51.79811339790153, 56.538373138161276, 54.538373138161276, 54.12234848484849, 52.26352495543672, 50.87147950089127, 54.64925727866904, 53.803103432515194, 51.553103432515194, 55.819770099181866, 56.94722107957402, 56.49267562502856, 52.24267562502856, 49.515402897755834, 49.90755976050094, 51.15157889925692, 43.37380112147913, 40.553288300966315, 46.803288300966315, 46.803288300966315, 45.35532450006134, 43.68865783339468, 49.93865783339468, 54.08007197480881, 56.74673864147549, 55.957264957264954, 65.95726495726495, 72.62393162393161, 65.48107448107449, 62.56440781440781, 63.718253968253975, 64.02128427128426, 55.68795093795094, 47.91017316017316, 46.19588744588744, 44.94588744588744, 36.374458874458874, 30.124458874458874, 29.767316017316016, 31.57287157287157, 28.57287157287157, 27.158730158730158, 29.77777777777778, 32.77777777777778, 33.492063492063494, 34.85834256183094, 35.05767811000369, 35.85313265545823, 35.22813265545824, 33.601148528474106, 35.6920576193832, 40.244028945548074, 38.62498132650045, 40.62498132650045, 41.33926704078617, 39.080130828161586, 42.4522238514174, 41.24010263929618, 43.910557184750736, 42.83912861332216, 44.748219522413066, 44.640692640692635, 45.307359307359306, 43.64069264069264, 43.640692640692635, 48.28354978354978, 46.44144452039188, 44.983111187058554, 46.43765664160401, 44.69162489557226, 44.69162489557226, 42.0249582289056, 48.69162489557226, 49.802736006683375, 46.58845029239767, 44.802736006683375, 43.31150793650794, 47.68650793650794, 47.68650793650794, 49.30266955266955, 46.636002886002885, 48.636002886002885, 41.96933621933622, 46.27489177489177, 43.77489177489177, 43.06060606060606, 47.39393939393939, 47.14393939393939, 48.14393939393939, 50.41666666666667, 48.333333333333336, 47.88888888888889, 48.841269841269835, 44.37698412698413, 49.37698412698413, 48.92243867243867, 47.92243867243867, 48.28607503607503, 44.01334776334776, 43.299062049062044, 46.049062049062044, 42.493506493506494, 38.20779220779221, 37.768231768231765, 32.768231768231765, 34.222777222777225, 35.65134865134865, 35.001998001998004, 36.27472527472528, 35.73901098901099, 34.3477066411849, 35.98407027754854, 37.650736944215204, 33.80458309806136], "hovertemplate": "region=AS
cohort_date=%{x}
rolling=%{y}", "name": "AS", "type": "scatter", "yaxis": "y", "showlegend": true, "x": ["2020-10-22T00:00:00", "2020-10-23T00:00:00", "2020-10-27T00:00:00", "2020-10-28T00:00:00", "2020-10-29T00:00:00", "2020-10-30T00:00:00", "2020-10-31T00:00:00", "2020-11-01T00:00:00", "2020-11-02T00:00:00", "2020-11-03T00:00:00", "2020-11-04T00:00:00", "2020-11-05T00:00:00", "2020-11-06T00:00:00", "2020-11-07T00:00:00", "2020-11-08T00:00:00", "2020-11-09T00:00:00", "2020-11-10T00:00:00", "2020-11-11T00:00:00", "2020-11-12T00:00:00", "2020-11-13T00:00:00", "2020-11-14T00:00:00", "2020-11-15T00:00:00", "2020-11-16T00:00:00", "2020-11-17T00:00:00", "2020-11-18T00:00:00", "2020-11-19T00:00:00", "2020-11-20T00:00:00", "2020-11-21T00:00:00", "2020-11-22T00:00:00", "2020-11-23T00:00:00", "2020-11-24T00:00:00", "2020-11-25T00:00:00", "2020-11-26T00:00:00", "2020-11-27T00:00:00", "2020-11-28T00:00:00", "2020-11-29T00:00:00", "2020-11-30T00:00:00", "2020-12-01T00:00:00", "2020-12-02T00:00:00", "2020-12-03T00:00:00", "2020-12-04T00:00:00", "2020-12-05T00:00:00", "2020-12-06T00:00:00", "2020-12-07T00:00:00", "2020-12-08T00:00:00", "2020-12-09T00:00:00", "2020-12-10T00:00:00", "2020-12-11T00:00:00", "2020-12-12T00:00:00", "2020-12-13T00:00:00", "2020-12-14T00:00:00", "2020-12-15T00:00:00", "2020-12-16T00:00:00", "2020-12-17T00:00:00", "2020-12-18T00:00:00", "2020-12-19T00:00:00", "2020-12-20T00:00:00", "2020-12-21T00:00:00", "2020-12-22T00:00:00", "2020-12-23T00:00:00", "2020-12-24T00:00:00", "2020-12-25T00:00:00", "2020-12-26T00:00:00", "2020-12-27T00:00:00", "2020-12-28T00:00:00", "2020-12-29T00:00:00", "2020-12-30T00:00:00", "2020-12-31T00:00:00", "2021-01-01T00:00:00", "2021-01-02T00:00:00", "2021-01-03T00:00:00", "2021-01-04T00:00:00", "2021-01-05T00:00:00", "2021-01-06T00:00:00", "2021-01-07T00:00:00", "2021-01-08T00:00:00", "2021-01-09T00:00:00", "2021-01-10T00:00:00", "2021-01-11T00:00:00", "2021-01-12T00:00:00", "2021-01-13T00:00:00", "2021-01-14T00:00:00", "2021-01-15T00:00:00", "2021-01-16T00:00:00", "2021-01-17T00:00:00", "2021-01-18T00:00:00", "2021-01-19T00:00:00", "2021-01-20T00:00:00", "2021-01-21T00:00:00", "2021-01-22T00:00:00", "2021-01-23T00:00:00", "2021-01-24T00:00:00", "2021-01-25T00:00:00", "2021-01-26T00:00:00", "2021-01-27T00:00:00", "2021-01-28T00:00:00", "2021-01-29T00:00:00", "2021-01-30T00:00:00", "2021-01-31T00:00:00", "2021-02-01T00:00:00", "2021-02-02T00:00:00", "2021-02-03T00:00:00", "2021-02-04T00:00:00", "2021-02-05T00:00:00", "2021-02-06T00:00:00", "2021-02-07T00:00:00", "2021-02-08T00:00:00", "2021-02-09T00:00:00", "2021-02-10T00:00:00", "2021-02-11T00:00:00", "2021-02-12T00:00:00", "2021-02-13T00:00:00", "2021-02-14T00:00:00", "2021-02-15T00:00:00", "2021-02-16T00:00:00", "2021-02-17T00:00:00", "2021-02-18T00:00:00", "2021-02-19T00:00:00", "2021-02-20T00:00:00", "2021-02-21T00:00:00", "2021-02-22T00:00:00", "2021-02-23T00:00:00", "2021-02-24T00:00:00", "2021-02-25T00:00:00", "2021-02-26T00:00:00", "2021-02-27T00:00:00", "2021-02-28T00:00:00", "2021-03-01T00:00:00", "2021-03-02T00:00:00", "2021-03-03T00:00:00", "2021-03-04T00:00:00", "2021-03-05T00:00:00", "2021-03-06T00:00:00", "2021-03-07T00:00:00", "2021-03-08T00:00:00", "2021-03-09T00:00:00", "2021-03-10T00:00:00", "2021-03-11T00:00:00", "2021-03-12T00:00:00", "2021-03-13T00:00:00", "2021-03-14T00:00:00", "2021-03-15T00:00:00", "2021-03-16T00:00:00", "2021-03-17T00:00:00", "2021-03-18T00:00:00", "2021-03-19T00:00:00", "2021-03-20T00:00:00", "2021-03-21T00:00:00", "2021-03-22T00:00:00", "2021-03-23T00:00:00", "2021-03-24T00:00:00", "2021-03-25T00:00:00", "2021-03-26T00:00:00", "2021-03-27T00:00:00", "2021-03-28T00:00:00", "2021-03-29T00:00:00", "2021-03-30T00:00:00", "2021-03-31T00:00:00", "2021-04-01T00:00:00", "2021-04-02T00:00:00", "2021-04-03T00:00:00", "2021-04-04T00:00:00", "2021-04-05T00:00:00", "2021-04-06T00:00:00", "2021-04-07T00:00:00", "2021-04-08T00:00:00", "2021-04-09T00:00:00", "2021-04-10T00:00:00", "2021-04-11T00:00:00", "2021-04-12T00:00:00", "2021-04-13T00:00:00", "2021-04-14T00:00:00", "2021-04-15T00:00:00", "2021-04-17T00:00:00", "2021-04-18T00:00:00", "2021-04-19T00:00:00", "2021-04-20T00:00:00", "2021-04-21T00:00:00", "2021-04-22T00:00:00", "2021-04-23T00:00:00", "2021-04-24T00:00:00", "2021-04-25T00:00:00", "2021-04-26T00:00:00", "2021-04-27T00:00:00", "2021-04-28T00:00:00", "2021-04-29T00:00:00", "2021-04-30T00:00:00", "2021-05-01T00:00:00", "2021-05-02T00:00:00", "2021-05-03T00:00:00", "2021-05-04T00:00:00", "2021-05-05T00:00:00", "2021-05-06T00:00:00", "2021-05-07T00:00:00", "2021-05-08T00:00:00", "2021-05-09T00:00:00", "2021-05-10T00:00:00", "2021-05-11T00:00:00", "2021-05-12T00:00:00", "2021-05-13T00:00:00", "2021-05-14T00:00:00", "2021-05-15T00:00:00", "2021-05-16T00:00:00", "2021-05-17T00:00:00", "2021-05-18T00:00:00", "2021-05-19T00:00:00", "2021-05-20T00:00:00", "2021-05-21T00:00:00", "2021-05-22T00:00:00", "2021-05-23T00:00:00", "2021-05-24T00:00:00", "2021-05-25T00:00:00", "2021-05-26T00:00:00", "2021-05-27T00:00:00", "2021-05-28T00:00:00", "2021-05-29T00:00:00", "2021-05-30T00:00:00", "2021-05-31T00:00:00"], "mode": "lines", "line": {"color": "#636efa", "dash": "solid"}, "marker": {"symbol": "circle"}, "xaxis": "x", "orientation": "v"}, {"legendgroup": "EU", "y": [null, null, null, null, null, null, null, null, null, 28.590483036718656, 32.04636538965983, 35.22344872299316, 33.90892546679861, 34.08613864663187, 34.6394449894119, 34.8950179370019, 36.742619909211676, 37.20297250318496, 38.70765486208144, 38.08594220500151, 38.41829514617798, 38.689487674913615, 39.54068531245052, 39.63225296418879, 39.35755358658289, 40.2170907469658, 38.642080954564705, 38.13225942417355, 38.089430623904825, 38.64062240401226, 38.59740703021335, 38.32093733554526, 37.03134869339018, 36.78385389286078, 37.49505769915681, 37.41292239486099, 37.450201052829314, 39.63546255807904, 39.18730041598631, 38.80224687303802, 39.00707021290739, 39.74693596979672, 40.10647655682441, 40.06845983862907, 39.73132971983956, 38.76021058626555, 38.97067967604498, 37.520362551309255, 37.27056002366312, 36.73151078766992, 37.5733341941485, 37.65227259849677, 37.61739734459726, 36.74437501020555, 35.09878655610646, 36.0868817942017, 35.478010210753844, 34.978010210753844, 35.262430500608914, 36.24098055049252, 34.687409121921085, 33.67756802405182, 33.76932060137141, 34.31423194773759, 35.672436552808996, 36.684341314713755, 38.43413953908826, 37.669094724747666, 36.800754247099164, 36.46082669067676, 36.585563310988604, 36.74528994798797, 36.891443794141814, 37.600798065158465, 37.46652436381573, 37.04985769714906, 37.192714840006204, 36.91765270247514, 37.24348831315414, 37.76526008492591, 38.96383173529075, 40.24641279059908, 41.21507375926005, 40.3008285431013, 40.9031387741244, 41.543686037806, 41.914056408176364, 43.05604423779097, 43.53716803059167, 42.1907961485055, 42.412001335385746, 40.66749584088025, 40.95072024175171, 42.067514785656236, 42.64661083085397, 40.756063567172376, 38.97792620651075, 38.31337983891784, 38.916490048518924, 40.35124576898893, 39.1070986117983, 42.530222098481104, 42.24699769760964, 41.27993577402599, 40.04768657567509, 39.99560324234176, 39.45892578818858, 40.05625999914793, 37.96117117992118, 38.09553367277424, 37.20413095784211, 35.84602578617762, 36.1562109713628, 36.60376341891525, 36.461036422255674, 36.21550070796995, 37.23401922648847, 37.38333318936176, 40.11060591663448, 39.54782127122134, 40.87336518741795, 41.231816260154744, 39.79102678647054, 39.76607876152251, 40.031655881032215, 41.32927492865126, 40.01382154423236, 39.253873729490024, 37.70214959155899, 37.552421823863895, 37.49286256239874, 36.36672536053003, 36.05460785747006, 35.43829060563879, 34.93445708975708, 34.81165007221322, 35.62445795398662, 35.47404162307069, 35.96019199050992, 36.92052191981079, 37.31517074924222, 36.52108531660257, 38.20393734829182, 39.01641850596441, 38.42357092516502, 37.9364488646947, 37.91765187221349, 39.59521178506752, 39.39094428571806, 39.24717782390946, 38.86875860069652, 39.646940418878344, 38.222947744885666, 38.54641949680154, 39.128124240356, 39.65308599810874, 39.736818055525006, 38.75179047475275, 39.26405598701827, 38.7428141569529, 38.069355025961904, 37.685997361728326, 37.87526969987707, 36.842120528606344, 37.410053633718874, 36.230994551340046, 35.52392384426934, 34.7519878498962, 33.99170646461482, 33.83892868683704, 34.35669963900905, 35.08113257205983, 34.49620197060576, 36.818782615767056, 36.776521050946954, 37.45721412025388, 37.824624487664245, 38.62391610513769, 38.79256689878848, 38.34774707896865, 38.38995164699249, 37.57372486302378, 37.67176407871005, 36.682516766882095, 38.298615838089525, 38.47718726666095, 37.94644141676616, 38.13185175111267, 38.36994698920791, 37.356433475694395, 36.397786859153044, 37.720630681996866, 38.07150787497932, 36.52887221606459, 34.76571432132775, 33.64416043661597, 33.80503225810014, 33.34738472698814, 32.54940492900833, 34.78624703427149, 35.006027254051716, 35.87401062203508, 36.34074349194571, 36.58576010324139, 38.91909343657473, 39.06289556484622, 42.265098554618056, 43.764938656952566, 42.510764259921025, 41.66281104354675, 42.00694059820263, 40.04555063681266, 40.36829145111257, 40.76114859396971, 38.79145162427274, 40.72435288237415, 38.553653957642965, 35.38067290081345, 33.543938206935906], "hovertemplate": "region=EU
cohort_date=%{x}
rolling=%{y}", "name": "EU", "type": "scatter", "yaxis": "y", "showlegend": true, "x": ["2020-10-22T00:00:00", "2020-10-23T00:00:00", "2020-10-27T00:00:00", "2020-10-28T00:00:00", "2020-10-29T00:00:00", "2020-10-30T00:00:00", "2020-10-31T00:00:00", "2020-11-01T00:00:00", "2020-11-02T00:00:00", "2020-11-03T00:00:00", "2020-11-04T00:00:00", "2020-11-05T00:00:00", "2020-11-06T00:00:00", "2020-11-07T00:00:00", "2020-11-08T00:00:00", "2020-11-09T00:00:00", "2020-11-10T00:00:00", "2020-11-11T00:00:00", "2020-11-12T00:00:00", "2020-11-13T00:00:00", "2020-11-14T00:00:00", "2020-11-15T00:00:00", "2020-11-16T00:00:00", "2020-11-17T00:00:00", "2020-11-18T00:00:00", "2020-11-19T00:00:00", "2020-11-20T00:00:00", "2020-11-21T00:00:00", "2020-11-22T00:00:00", "2020-11-23T00:00:00", "2020-11-24T00:00:00", "2020-11-25T00:00:00", "2020-11-26T00:00:00", "2020-11-27T00:00:00", "2020-11-28T00:00:00", "2020-11-29T00:00:00", "2020-11-30T00:00:00", "2020-12-01T00:00:00", "2020-12-02T00:00:00", "2020-12-03T00:00:00", "2020-12-04T00:00:00", "2020-12-05T00:00:00", "2020-12-06T00:00:00", "2020-12-07T00:00:00", "2020-12-08T00:00:00", "2020-12-09T00:00:00", "2020-12-10T00:00:00", "2020-12-11T00:00:00", "2020-12-12T00:00:00", "2020-12-13T00:00:00", "2020-12-14T00:00:00", "2020-12-15T00:00:00", "2020-12-16T00:00:00", "2020-12-17T00:00:00", "2020-12-18T00:00:00", "2020-12-19T00:00:00", "2020-12-20T00:00:00", "2020-12-21T00:00:00", "2020-12-22T00:00:00", "2020-12-23T00:00:00", "2020-12-24T00:00:00", "2020-12-25T00:00:00", "2020-12-26T00:00:00", "2020-12-27T00:00:00", "2020-12-28T00:00:00", "2020-12-29T00:00:00", "2020-12-30T00:00:00", "2020-12-31T00:00:00", "2021-01-01T00:00:00", "2021-01-02T00:00:00", "2021-01-03T00:00:00", "2021-01-04T00:00:00", "2021-01-05T00:00:00", "2021-01-06T00:00:00", "2021-01-07T00:00:00", "2021-01-08T00:00:00", "2021-01-09T00:00:00", "2021-01-10T00:00:00", "2021-01-11T00:00:00", "2021-01-12T00:00:00", "2021-01-13T00:00:00", "2021-01-14T00:00:00", "2021-01-15T00:00:00", "2021-01-16T00:00:00", "2021-01-17T00:00:00", "2021-01-18T00:00:00", "2021-01-19T00:00:00", "2021-01-20T00:00:00", "2021-01-21T00:00:00", "2021-01-22T00:00:00", "2021-01-23T00:00:00", "2021-01-24T00:00:00", "2021-01-25T00:00:00", "2021-01-26T00:00:00", "2021-01-27T00:00:00", "2021-01-28T00:00:00", "2021-01-29T00:00:00", "2021-01-30T00:00:00", "2021-01-31T00:00:00", "2021-02-01T00:00:00", "2021-02-02T00:00:00", "2021-02-03T00:00:00", "2021-02-04T00:00:00", "2021-02-05T00:00:00", "2021-02-06T00:00:00", "2021-02-07T00:00:00", "2021-02-08T00:00:00", "2021-02-09T00:00:00", "2021-02-10T00:00:00", "2021-02-11T00:00:00", "2021-02-12T00:00:00", "2021-02-13T00:00:00", "2021-02-14T00:00:00", "2021-02-15T00:00:00", "2021-02-16T00:00:00", "2021-02-17T00:00:00", "2021-02-18T00:00:00", "2021-02-19T00:00:00", "2021-02-20T00:00:00", "2021-02-21T00:00:00", "2021-02-22T00:00:00", "2021-02-23T00:00:00", "2021-02-24T00:00:00", "2021-02-25T00:00:00", "2021-02-26T00:00:00", "2021-02-27T00:00:00", "2021-02-28T00:00:00", "2021-03-01T00:00:00", "2021-03-02T00:00:00", "2021-03-03T00:00:00", "2021-03-04T00:00:00", "2021-03-05T00:00:00", "2021-03-06T00:00:00", "2021-03-07T00:00:00", "2021-03-08T00:00:00", "2021-03-09T00:00:00", "2021-03-10T00:00:00", "2021-03-11T00:00:00", "2021-03-12T00:00:00", "2021-03-13T00:00:00", "2021-03-14T00:00:00", "2021-03-15T00:00:00", "2021-03-16T00:00:00", "2021-03-17T00:00:00", "2021-03-18T00:00:00", "2021-03-19T00:00:00", "2021-03-20T00:00:00", "2021-03-21T00:00:00", "2021-03-22T00:00:00", "2021-03-23T00:00:00", "2021-03-24T00:00:00", "2021-03-25T00:00:00", "2021-03-26T00:00:00", "2021-03-27T00:00:00", "2021-03-28T00:00:00", "2021-03-29T00:00:00", "2021-03-30T00:00:00", "2021-03-31T00:00:00", "2021-04-01T00:00:00", "2021-04-02T00:00:00", "2021-04-03T00:00:00", "2021-04-04T00:00:00", "2021-04-05T00:00:00", "2021-04-06T00:00:00", "2021-04-07T00:00:00", "2021-04-08T00:00:00", "2021-04-09T00:00:00", "2021-04-10T00:00:00", "2021-04-11T00:00:00", "2021-04-12T00:00:00", "2021-04-13T00:00:00", "2021-04-14T00:00:00", "2021-04-15T00:00:00", "2021-04-16T00:00:00", "2021-04-17T00:00:00", "2021-04-18T00:00:00", "2021-04-19T00:00:00", "2021-04-20T00:00:00", "2021-04-21T00:00:00", "2021-04-22T00:00:00", "2021-04-23T00:00:00", "2021-04-24T00:00:00", "2021-04-25T00:00:00", "2021-04-26T00:00:00", "2021-04-27T00:00:00", "2021-04-28T00:00:00", "2021-04-29T00:00:00", "2021-04-30T00:00:00", "2021-05-01T00:00:00", "2021-05-02T00:00:00", "2021-05-03T00:00:00", "2021-05-04T00:00:00", "2021-05-05T00:00:00", "2021-05-06T00:00:00", "2021-05-07T00:00:00", "2021-05-08T00:00:00", "2021-05-09T00:00:00", "2021-05-10T00:00:00", "2021-05-11T00:00:00", "2021-05-12T00:00:00", "2021-05-13T00:00:00", "2021-05-14T00:00:00", "2021-05-15T00:00:00", "2021-05-16T00:00:00", "2021-05-17T00:00:00", "2021-05-18T00:00:00", "2021-05-19T00:00:00", "2021-05-20T00:00:00", "2021-05-21T00:00:00", "2021-05-22T00:00:00", "2021-05-23T00:00:00", "2021-05-24T00:00:00", "2021-05-25T00:00:00", "2021-05-26T00:00:00", "2021-05-27T00:00:00", "2021-05-28T00:00:00", "2021-05-29T00:00:00", "2021-05-30T00:00:00", "2021-05-31T00:00:00"], "mode": "lines", "line": {"color": "#EF553B", "dash": "solid"}, "marker": {"symbol": "circle"}, "xaxis": "x", "orientation": "v"}, {"legendgroup": "NA", "y": [null, null, null, null, null, null, null, null, null, 34.9740546493549, 38.479801775791685, 36.37862530520344, 36.81606329439979, 36.924617354321626, 36.86631068837815, 37.963364810323796, 38.24105076073702, 38.22917830483471, 38.15305650996292, 39.43181487880041, 39.856703590513916, 39.32168958491168, 38.79288739045877, 38.55436555395261, 38.63342241941724, 37.36960854322281, 36.37566914928341, 37.0455754318242, 36.08403697028574, 34.45793726354087, 34.163665061754216, 34.20149937356113, 33.56637575889787, 34.145323127318925, 34.576400821554515, 34.74617081060161, 37.89932396375476, 38.25139114721729, 38.84353281849566, 39.1389873639502, 39.83252063480306, 39.73544372832048, 40.87693483843553, 40.21026817176886, 40.350619048961846, 41.28644792596719, 38.399961439480705, 37.472784262303534, 37.012674737982685, 37.1271607192911, 36.82711455834326, 37.14032540698717, 37.32023242133931, 37.48689908800598, 36.90153323434744, 37.91209130372904, 38.49390948554722, 39.346300337938075, 41.00220997892234, 42.20294138891828, 42.324034038876036, 42.05976977461178, 40.13061101433347, 39.83061101433346, 39.945388632697885, 38.89125757856684, 40.86328555059481, 40.76295110243427, 39.64808623756941, 38.57493233832855, 38.19210488413112, 40.43616712819337, 43.07291327125087, 43.44434184267944, 44.326694783855906, 43.19379718037007, 39.64864667869783, 37.881848259725494, 38.131848259725494, 38.42356855144579, 38.36973832370252, 34.612162566126756, 32.077698091047225, 32.59717861052775, 32.94731866655016, 32.97911516893489, 33.70375285009432, 35.45776354528148, 34.791096878614816, 34.83084250659573, 36.301741977495205, 38.12527138925991, 39.07870819635525, 39.987799105446165, 38.89256101020807, 40.08625470390176, 42.54239505477896, 42.24827740772013, 43.314944074386794, 43.81573898694642, 45.297220468427895, 45.11005469302683, 44.082386708837106, 42.32562995208035, 41.99229661874701, 41.57562995208035, 39.952822934536485, 39.25429352277179, 39.85429352277178, 45.26681130371061, 44.132059530660975, 44.01421441281585, 47.28787170181842, 46.59781994793687, 47.29674467911967, 47.95850938500202, 47.428206354698986, 47.24438282528722, 46.78983737074177, 39.74530295778631, 38.406936451266056, 39.17413221846182, 38.29177927728536, 43.07192112125698, 41.68672188027027, 40.723233036456875, 44.58686940009324, 44.97902626283834, 43.350238384050456, 43.6882337220458, 42.571608411872106, 39.99321119932855, 38.65987786599522, 34.8048054022271, 36.36827289448716, 35.777139889561056, 31.610473222894388, 30.20021681263798, 32.11113635286786, 33.52527776700928, 36.003910245641755, 38.74103761691547, 38.407704283582135, 38.84248689227779, 39.63196057648831, 40.495747951903596, 42.04046339905806, 43.45071980931448, 44.14037498172827, 44.478539232936, 43.58965034404711, 42.716634471031234, 43.06751166401369, 41.654468185752826, 42.210023741308376, 42.77480779446452, 42.56342568064339, 43.93597470025123, 42.96418786639543, 42.764912504076584, 42.76491250407659, 44.19348393264802, 43.14085235370065, 43.97418568703398, 42.307519020367316, 41.221804734653034, 40.797562310410605, 39.42501329080277, 38.03745348219032, 38.08826649032041, 37.080136409019595, 37.080136409019595, 37.057253113825084, 38.00963406620603, 36.50169755826953, 36.378620635192604, 40.4695297261017, 40.4695297261017, 40.64496832259292, 38.867964838272364, 38.959428252906505, 37.29276158623984, 40.93406593406593, 41.64835164835165, 42.83882783882784, 43.446115288220554, 39.27944862155388, 40.23182957393483, 40.056390977443606, 39.69924812030075, 39.28258145363409, 38.806390977443606, 35.556390977443606, 32.77861319966583, 34.207184628237265, 33.856307435254806, 34.98375841564696, 36.531377463266004, 37.91893727187845, 40.246523478774996, 41.91319014544166, 42.80604728829881, 44.80604728829881, 46.583825066076585, 49.361602843854364, 47.903269510521035, 44.60915186346221, 41.77581853012888, 42.23036398467433, 40.736111111111114, 41.06944444444444, 40.652777777777786, 38.652777777777786, 42.986111111111114, 41.20833333333333, 41.15151515151515, 42.68092691622103, 39.68092691622103], "hovertemplate": "region=NA
cohort_date=%{x}
rolling=%{y}", "name": "NA", "type": "scatter", "yaxis": "y", "showlegend": true, "x": ["2020-10-25T00:00:00", "2020-10-27T00:00:00", "2020-10-28T00:00:00", "2020-10-29T00:00:00", "2020-10-30T00:00:00", "2020-10-31T00:00:00", "2020-11-01T00:00:00", "2020-11-02T00:00:00", "2020-11-03T00:00:00", "2020-11-04T00:00:00", "2020-11-05T00:00:00", "2020-11-06T00:00:00", "2020-11-07T00:00:00", "2020-11-08T00:00:00", "2020-11-09T00:00:00", "2020-11-10T00:00:00", "2020-11-11T00:00:00", "2020-11-12T00:00:00", "2020-11-13T00:00:00", "2020-11-14T00:00:00", "2020-11-15T00:00:00", "2020-11-16T00:00:00", "2020-11-17T00:00:00", "2020-11-18T00:00:00", "2020-11-19T00:00:00", "2020-11-20T00:00:00", "2020-11-21T00:00:00", "2020-11-22T00:00:00", "2020-11-23T00:00:00", "2020-11-24T00:00:00", "2020-11-25T00:00:00", "2020-11-26T00:00:00", "2020-11-27T00:00:00", "2020-11-28T00:00:00", "2020-11-29T00:00:00", "2020-11-30T00:00:00", "2020-12-01T00:00:00", "2020-12-02T00:00:00", "2020-12-03T00:00:00", "2020-12-04T00:00:00", "2020-12-05T00:00:00", "2020-12-06T00:00:00", "2020-12-07T00:00:00", "2020-12-08T00:00:00", "2020-12-09T00:00:00", "2020-12-10T00:00:00", "2020-12-11T00:00:00", "2020-12-12T00:00:00", "2020-12-13T00:00:00", "2020-12-14T00:00:00", "2020-12-15T00:00:00", "2020-12-16T00:00:00", "2020-12-17T00:00:00", "2020-12-18T00:00:00", "2020-12-19T00:00:00", "2020-12-20T00:00:00", "2020-12-21T00:00:00", "2020-12-22T00:00:00", "2020-12-23T00:00:00", "2020-12-24T00:00:00", "2020-12-25T00:00:00", "2020-12-26T00:00:00", "2020-12-27T00:00:00", "2020-12-28T00:00:00", "2020-12-29T00:00:00", "2020-12-30T00:00:00", "2020-12-31T00:00:00", "2021-01-01T00:00:00", "2021-01-02T00:00:00", "2021-01-03T00:00:00", "2021-01-04T00:00:00", "2021-01-05T00:00:00", "2021-01-06T00:00:00", "2021-01-07T00:00:00", "2021-01-08T00:00:00", "2021-01-09T00:00:00", "2021-01-10T00:00:00", "2021-01-11T00:00:00", "2021-01-12T00:00:00", "2021-01-13T00:00:00", "2021-01-14T00:00:00", "2021-01-15T00:00:00", "2021-01-16T00:00:00", "2021-01-17T00:00:00", "2021-01-18T00:00:00", "2021-01-19T00:00:00", "2021-01-20T00:00:00", "2021-01-21T00:00:00", "2021-01-22T00:00:00", "2021-01-23T00:00:00", "2021-01-24T00:00:00", "2021-01-25T00:00:00", "2021-01-26T00:00:00", "2021-01-27T00:00:00", "2021-01-28T00:00:00", "2021-01-29T00:00:00", "2021-01-30T00:00:00", "2021-01-31T00:00:00", "2021-02-01T00:00:00", "2021-02-02T00:00:00", "2021-02-03T00:00:00", "2021-02-04T00:00:00", "2021-02-05T00:00:00", "2021-02-06T00:00:00", "2021-02-07T00:00:00", "2021-02-08T00:00:00", "2021-02-09T00:00:00", "2021-02-10T00:00:00", "2021-02-11T00:00:00", "2021-02-12T00:00:00", "2021-02-13T00:00:00", "2021-02-14T00:00:00", "2021-02-15T00:00:00", "2021-02-16T00:00:00", "2021-02-17T00:00:00", "2021-02-18T00:00:00", "2021-02-19T00:00:00", "2021-02-20T00:00:00", "2021-02-21T00:00:00", "2021-02-22T00:00:00", "2021-02-23T00:00:00", "2021-02-24T00:00:00", "2021-02-25T00:00:00", "2021-02-26T00:00:00", "2021-02-27T00:00:00", "2021-02-28T00:00:00", "2021-03-01T00:00:00", "2021-03-02T00:00:00", "2021-03-03T00:00:00", "2021-03-04T00:00:00", "2021-03-05T00:00:00", "2021-03-06T00:00:00", "2021-03-07T00:00:00", "2021-03-08T00:00:00", "2021-03-09T00:00:00", "2021-03-10T00:00:00", "2021-03-11T00:00:00", "2021-03-12T00:00:00", "2021-03-13T00:00:00", "2021-03-14T00:00:00", "2021-03-15T00:00:00", "2021-03-16T00:00:00", "2021-03-17T00:00:00", "2021-03-18T00:00:00", "2021-03-19T00:00:00", "2021-03-20T00:00:00", "2021-03-21T00:00:00", "2021-03-22T00:00:00", "2021-03-23T00:00:00", "2021-03-24T00:00:00", "2021-03-25T00:00:00", "2021-03-26T00:00:00", "2021-03-27T00:00:00", "2021-03-28T00:00:00", "2021-03-29T00:00:00", "2021-03-30T00:00:00", "2021-03-31T00:00:00", "2021-04-01T00:00:00", "2021-04-02T00:00:00", "2021-04-03T00:00:00", "2021-04-04T00:00:00", "2021-04-05T00:00:00", "2021-04-06T00:00:00", "2021-04-07T00:00:00", "2021-04-08T00:00:00", "2021-04-09T00:00:00", "2021-04-10T00:00:00", "2021-04-11T00:00:00", "2021-04-12T00:00:00", "2021-04-13T00:00:00", "2021-04-14T00:00:00", "2021-04-15T00:00:00", "2021-04-16T00:00:00", "2021-04-17T00:00:00", "2021-04-18T00:00:00", "2021-04-19T00:00:00", "2021-04-20T00:00:00", "2021-04-21T00:00:00", "2021-04-22T00:00:00", "2021-04-23T00:00:00", "2021-04-24T00:00:00", "2021-04-25T00:00:00", "2021-04-26T00:00:00", "2021-04-27T00:00:00", "2021-04-28T00:00:00", "2021-04-29T00:00:00", "2021-04-30T00:00:00", "2021-05-01T00:00:00", "2021-05-02T00:00:00", "2021-05-03T00:00:00", "2021-05-04T00:00:00", "2021-05-05T00:00:00", "2021-05-06T00:00:00", "2021-05-07T00:00:00", "2021-05-08T00:00:00", "2021-05-09T00:00:00", "2021-05-10T00:00:00", "2021-05-11T00:00:00", "2021-05-12T00:00:00", "2021-05-13T00:00:00", "2021-05-14T00:00:00", "2021-05-15T00:00:00", "2021-05-16T00:00:00", "2021-05-17T00:00:00", "2021-05-18T00:00:00", "2021-05-19T00:00:00", "2021-05-20T00:00:00", "2021-05-21T00:00:00", "2021-05-22T00:00:00", "2021-05-23T00:00:00", "2021-05-24T00:00:00", "2021-05-25T00:00:00", "2021-05-26T00:00:00", "2021-05-27T00:00:00", "2021-05-28T00:00:00", "2021-05-29T00:00:00", "2021-05-30T00:00:00", "2021-05-31T00:00:00"], "mode": "lines", "line": {"color": "#00cc96", "dash": "solid"}, "marker": {"symbol": "circle"}, "xaxis": "x", "orientation": "v"}], "config": {"plotlyServerURL": "https://plot.ly"}}}, "output_type": "display_data"}], "_view_count": null, "_model_module_version": "1.0.0", "_dom_classes": [], "_view_module_version": "1.0.0", "msg_id": ""}, "model_name": "OutputModel", "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0"}, "1d3c260cfb5040e38b487d593a518e0d": {"state": {"grid_template_rows": null, "_view_module": "@jupyter-widgets/base", "grid_column": null, "grid_gap": null, "justify_items": null, "min_width": null, "flex": null, "order": null, "margin": null, "overflow": null, "overflow_y": null, "overflow_x": null, "align_content": null, "display": null, "_model_module": "@jupyter-widgets/base", "width": null, "grid_template_areas": null, "_view_count": null, "grid_template_columns": null, "object_position": null, "grid_auto_flow": null, "padding": null, "left": null, "max_height": null, "bottom": null, "_model_name": "LayoutModel", "align_items": null, "min_height": null, "grid_auto_columns": null, "align_self": null, "_model_module_version": "1.2.0", "grid_row": null, "height": null, "visibility": null, "grid_area": null, "_view_name": "LayoutView", "object_fit": null, "grid_auto_rows": null, "max_width": null, "right": null, "border": null, "justify_content": null, "top": null, "_view_module_version": "1.2.0", "flex_flow": null}, "model_name": "LayoutModel", "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0"}}